package cn.stylefeng.guns.modular.base.item.pojo.request;

import cn.stylefeng.roses.kernel.rule.pojo.request.BaseRequest;
import cn.stylefeng.roses.kernel.rule.annotation.ChineseDescription;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.Date;
import java.math.BigDecimal;
import java.util.List;

/**
 * 基础数据-存货档案封装类
 *
 * @author caoxf
 * @since 2023/11/20 22:56
 */
@EqualsAndHashCode(callSuper = true)
@Data
public class ItemRequest extends BaseRequest {

    /**
     * 存货编码（对erp和tc的唯一编码）
     */
    @NotNull(message = "存货编码（对erp和tc的唯一编码）不能为空", groups = {edit.class, delete.class})
    @ChineseDescription("存货编码（对erp和tc的唯一编码）")
    private String code;

    /**
     * 件号
     */
    @ChineseDescription("件号")
    private String itemcode;

    /**
     * 件名
     */
    @ChineseDescription("件名")
    private String itemname;

    /**
     * 规格型号
     */
    @ChineseDescription("规格型号")
    private String specs;

    /**
     * 所属分类编码
     */
    @ChineseDescription("所属分类编码")
    private String classcode;

    /**
     * 计量单位组编码
     */
    @ChineseDescription("计量单位组编码")
    private String unitgroupcode;

    /**
     * 采购默认单位编码
     */
    @ChineseDescription("采购默认单位编码")
    private String puunitcode;

    /**
     * 销售默认单位编码
     */
    @ChineseDescription("销售默认单位编码")
    private String saunitcode;

    /**
     * 库存默认单位编码
     */
    @ChineseDescription("库存默认单位编码")
    private String stunitcode;

    /**
     * 条形码
     */
    @ChineseDescription("条形码")
    private String barcode;

    /**
     * 默认仓库
     */
    @ChineseDescription("默认仓库")
    private String defwarehouse;

    /**
     * 供应商
     */
    @ChineseDescription("供应商")
    private String vendor;

    /**
     * 产品规格
     */
    @ChineseDescription("产品规格")
    private String itemformat;

    /**
     * 排产类型（1：排产到工序，报工到工序；2：排产到工序，报工到工步；3：排产到工步，报工到工步--维护到字典
     */
    @ChineseDescription("排产类型（1：排产到工序，报工到工序；2：排产到工序，报工到工步；3：排产到工步，报工到工步--维护到字典")
    private String schedulingtype;

    /**
     * 关、重标识（流卡用 1、一般件；2、关重件）已维护到字典
     */
    @ChineseDescription("关、重标识（流卡用 1、一般件；2、关重件）已维护到字典")
    private String keylevel;

    /**
     * 型别(流卡用)（型号）
     */
    @ChineseDescription("型别(流卡用)（型号）")
    private String model;

    /**
     * 设计图版式
     */
    @ChineseDescription("设计图版式")
    private String design;

    /**
     * 管理等级（不需要页面配置，采用数据库默认的方式：1管理到工序、2管理到工步）
     */
    @ChineseDescription("管理等级（不需要页面配置，采用数据库默认的方式：1管理到工序、2管理到工步）")
    private String mlevel;

    /**
     * 批量删除用的id集合
     */
    @NotNull(message = "批量删除id集合不能为空", groups = batchDelete.class)
    @ChineseDescription("批量删除用的id集合")
    private List<Long> batchDeleteIdList;

}
